package com.bestcem.xm.member.dao;

import com.bestcem.xm.member.entity.pojo.ExportRecordDO;
import com.bestcem.xm.member.enums.MemberTypeEnum;

import java.util.List;

/**
 * @author ming.xue <ming.xue@idiaoyan.com>
 * @desc 导出记录
 * @date 2021-07-24
 */
public interface ExportRecordDao {
    long countByUser(String orgId, String opUserId, MemberTypeEnum memberTypeEnum);

    /**
     * 分页查询导出记录
     *
     * @param orgId          企业标识
     * @param opUserId       用户标识
     * @param memberTypeEnum 联系人类型
     * @param skip           偏移量
     * @param limit          分页大小
     * @return 分页导出记录
     */
    List<ExportRecordDO> listByUser(String orgId, String opUserId, MemberTypeEnum memberTypeEnum, long skip, int limit);

    /**
     * 单个查询导出记录
     *
     * @param orgId 企业标识
     * @param id    导出记录标识
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/7/29
     */
    ExportRecordDO findById(String orgId, String id);

    /**
     * 更新导出状态
     *
     * @param exportRecord
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/7/30
     */
    Integer updateStatusById(ExportRecordDO exportRecord);

    /**
     * 批量删除导出记录
     *
     * @param orgId 企业标识
     * @param ids   导出记录标识
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/7/30
     */
    Integer batchDeleteByIds(String orgId, List<String> ids);

    /**
     * 更新 导出记录状态以及文件相关的信息
     *
     * @param exportRecord
     */
    void updateStatusAndFile(ExportRecordDO exportRecord);

    /**
     * 跟新导出记录中 状态和信息
     *
     * @param id
     * @param status
     * @param msg
     */
    void updateStatusAndMsgById(String id, int status, String msg);

    /**
     * 创建记录
     *
     * @param exportRecord
     */
    void saveRecord(ExportRecordDO exportRecord);
}
